package com.itheima.heima.info.manager.system.dao;

import com.itheima.heima.info.manager.system.domain.Student;

/*
学生操作数据类
学生的增删改查
写在这个类中
 */
public class StudentDao  implements BaseStudentDao {
    //创建 数组
    private static Student[] stus = new Student[40];

    static  {
        Student cai = new Student("0001", "蔡徐坤", 25, "1996");
        Student lu = new Student("0002", "鹿晗", 30, "1996");
        Student huang = new Student("0003", "黄子韬", 28, "1996");
        Student wu = new Student("0004", "吴亦凡", 28, "1996");
        stus[0]=cai;
        stus[1]=lu;
        stus[2]=huang;
        stus[3]=wu;

    }
    @Override
    public boolean addStudent(Student student) {
        //数组的长度是不是固定
        //满了 不能 返回 false
        for (int i = 0; i < stus.length; i++) {
            //stus[i]
            if(stus[i]==null){
                //没满  找个地方 把学生存储起来 返回 true
                //将学生对象 存入数组
                stus[i]=student;
                return true;
            }
        }
        return false;
    }
    //查看所有的学生
    public Student[] findAll() {

        return stus;
    }

    public void deleteStudent(String sid) {
        int index = getIndex(sid);
        //把地址值替换为null
        stus[index]=null;



    }
    //根据学号找索引
    /*
    根据条件查询 学号 索引
     */
    public int getIndex(String sid) {
        //必然存在
        //定义  索引 默认值为-1
        int index=-1;
        //查看学号对应的学生在数组中的位置
        for (int i = 0; i < stus.length; i++) {
            //stus[i]
            Student stu = stus[i];
            if(stu!=null&& stu.getSid().equals(sid)){
              index=i;
                break;
            }
        }
        return index;
    }

    public void updateStudent(String sid, Student student) {
        //查看 学号对应的学生的索引
        int index = getIndex(sid);

        //把新的学生替换旧的学生
        stus[index]=student;

    }
}
